/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package entities;

import edu.upc.poo.mercado.enums.Destino;

/**
 *
 * @author alumno
 */
public class Camioneta extends MedioTransporte {

    public Camioneta() {
        super(5.0, 2.0);
        this.LIMITE_CARGA = 200.0;
    }

    @Override
    public void calculaCostoTransporte(Destino destino) {
        setCostoTransporte(this.getCostoCarga() + (2 * destino.getDistance()));
    }

    @Override
    public void calculaGananciaTransporte(Destino destino) {
        /*el valor de compra de la carga
         * se deprecia en un 1% por cada 50 Km recorridos.*/
        Double monto = 0.0;
        for (Carga carga : productos) {
            monto += carga.getCantidad() * managerMercado.getMercado(destino).getPrecioProducto(carga.getProducto());
        }
        Double deprecio = ((int) (destino.getDistance() / 50)) / 100.0;
        this.calculaCostoTransporte(destino);
        monto = monto - (monto * deprecio) - getCostoTransporte();
        this.setGanancia(monto);
    }

    @Override
    public void calculaMayorGanancia() {
        Double monto, mayor;
        mayor = 0.0;
        ManagerProducto managerProducto = ManagerProducto.getInstance();
        Producto _producto = null;
        Mercado _mercado = null;
        for (Producto producto : managerProducto.getProductos()) {
            for (Mercado mercado : managerMercado.getMercados()) {
                monto = LIMITE_CARGA * managerMercado.getMercado(mercado.getUbicacion()).getPrecioProducto(producto);
                if(monto > mayor){
                    mayor = monto;
                    _producto = producto;
                    _mercado = mercado;
                }
            }
        }
        this.setMejorMercado(_mercado);
        this.setMejorProducto(_producto);
    }
}
